﻿using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace TZ.PlugIn.FileSrv.CustomApi
{
    public class ContractCallbackRequest
    {
        /// <summary>
        /// 
        /// </summary>
        public string tenantType { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string documentInfo { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string signatoriesInfo { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string completeTime { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string type { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string operatorAccount { get; set; }
        /// <summary>
        /// 陈良
        /// </summary>
        public string operatorName { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string callbackBusinessType { get; set; }
        /// <summary>
        /// 广州通则康威科技股份有限公司
        /// </summary>
        public string tenantName { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string contractId { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string tenantId { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string bizId { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string callbackHeader { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string documentId { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string sn { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string completeTimeFmt { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string operatorMobile { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string status { get; set; }
    }


    // 文档信息DTO
    public class DocumentInfo
    {
        [JsonProperty("id")]
        public string Id { get; set; }

        [JsonProperty("title")]
        public string Title { get; set; }

        [JsonProperty("type")]
        public string Type { get; set; }

        [JsonProperty("usage")]
        public string Usage { get; set; }
    }
    // 操作员信息DTO
    public class OperatorInfo
    {
        [JsonProperty("operatorId")]
        public string OperatorId { get; set; }

        [JsonProperty("operatorName")]
        public string OperatorName { get; set; }

        [JsonProperty("operatorContract")]
        public string OperatorContract { get; set; }
    }
    // 印章统计信息DTO
    public class SealStatsInfo
    {
        [JsonProperty("sealId")]
        public string SealId { get; set; }

        [JsonProperty("sealName")]
        public string SealName { get; set; }

        [JsonProperty("count")]
        public int Count { get; set; }
    }
    // 签署方信息DTO
    public class SignatoryInfo
    {
        [JsonProperty("tenantId")]
        public string TenantId { get; set; }

        [JsonProperty("tenantName")]
        public string TenantName { get; set; }

        [JsonProperty("tenantType")]
        public string TenantType { get; set; }

        [JsonProperty("receiverId")]
        public string ReceiverId { get; set; }

        [JsonProperty("receiverName")]
        public string ReceiverName { get; set; }

        [JsonProperty("receiverContact")]
        public string ReceiverContact { get; set; }

        [JsonProperty("receiverType")]
        public string ReceiverType { get; set; }

        [JsonProperty("status")]
        public string Status { get; set; }

        [JsonProperty("serialNo")]
        public int SerialNo { get; set; }

        [JsonProperty("sponsor")]
        public bool Sponsor { get; set; }

        [JsonProperty("operatorInfos")]
        public List<OperatorInfo> OperatorInfos { get; set; }

        [JsonProperty("sealStatsInfos")]
        public List<SealStatsInfo> SealStatsInfos { get; set; }

        [JsonProperty("signatoryId")]
        public string SignatoryId { get; set; }
    }
}
